package com.second.app.thread.线程基础.day02;

/**
 * @Author GYZ
 * @Date 2023/11/17
 * <pre>
 *   yield()方法：放弃当前CPU的资源，将它让给其他的任务去占用CPU执行时间，但放弃的时间不确定，有时候可能刚放弃，马上又获得
 *   CPU时间片。
 *   案例：使用yield()，线程执行时间明显长了好多。
 * </pre>
 */
public class YieldDemo {

    public static void main(String[] args) {
        class YeildTask extends Thread {
            @Override
            public void run() {
                long beginTime = System.currentTimeMillis();
                int count = 0;
                for (int i = 0; i < 50000000; i++) {
                    Thread.yield();
                    count = count + (i + 1);
                }
                long endTime = System.currentTimeMillis();
                System.out.println("用时：" + (endTime - beginTime) + "毫秒");
            }
        }
        YeildTask yeildTask = new YeildTask();
        yeildTask.start();
    }
}
